# ①导包
import time
from time import sleep

import pytest
from selenium.webdriver.common.by import By
from selenium.webdriver.common.devtools.v127.dom import move_to

from page.search_page import SousuoPage
from page.toubi_page import ToubiPage
from utils import DriverUitls, get_el_text, read_json, el_is_exist_by_text, cunzaiys
from page.login_page import HomePage
import allure

class TestLogin:

    # 类级别前置方法：打开浏览器
    def setup_class(self):
        # ②创建浏览器驱动对象
        self.driver = DriverUitls.get_driver()
        self.driver.maximize_window()

    # 类级别后置方法：关闭浏览器
    def teardown_class(self):
        # ⑥浏览器驱动对象退出
        DriverUitls.quit_driver()

    # 方法级别前置方法：重新打开页面
    def setup_method(self):
        # ③访问页面
        self.driver.get("https://www.ypshuo.com/")

    # 方法级别后置方法：每个用例执行完成之后，停留2S
    def teardown_method(self):
        # ⑤暂停几秒钟
        time.sleep(2)

    @allure.title("验证投币功能成功")
    @allure.severity(allure.severity_level.BLOCKER)
    # 投币功能测试
    def test01_login_pinglun(self):
        with allure.step("测试步骤一:先登录然后搜索，再点击第一本书"):
            HomePage().home_to_login()
            HomePage().login("1697551573@qq.com", "123123123")
            SousuoPage().home_to_sousuo("寻宝全世界")
            #点击搜索
            SousuoPage().home_to_dianjisousuo()
            #点击搜索到的书
            SousuoPage().home_to_dianjibook()
            #浏览器权柄切换
            handel2 = self.driver.window_handles
            self.driver.switch_to.window(handel2[1])
        with allure.step("测试步骤二:点击投币页面选择是否投币以及投币次数，点击按钮完成投币"):
            ToubiPage().home_to_toubi(1)
        allure.attach(self.driver.get_screenshot_as_png(),
                      "投币功能截图", allure.attachment_type.PNG)
        with allure.step("测试步骤三:断言"):
            msg = get_el_text(self.driver, "/html/body/div[2]", "谢谢打赏")
            assert msg == "谢谢打赏"